package com.estatistica.controle;

import java.text.DecimalFormat;

import com.estatistica.entidade.DadosAmostra;
import com.estatistica.util.Util;

public class AmostraControle {

	private DadosAmostra dadosAmostra;

	public DadosAmostra getDadosAmostra() {
		return dadosAmostra;
	}

	public void setDadosAmostra(DadosAmostra dadosAmostra) {
		this.dadosAmostra = dadosAmostra;
	}

	public String getMedia(double valorFiXi, int total) {
		return new DecimalFormat(Util.TRES_CASAS).format(valorFiXi / total);
	}

	public String getMediaGeometrica(String[] Xi, int[] Fi, int total) {
		double mediag = 1;
		for (int i = 0; i < Fi.length; i++) {
			mediag *= Math.pow(getValorDouble(Xi[i]), Fi[i]);
		}
		return new DecimalFormat(Util.TRES_CASAS).format(Math.pow(mediag, (1.0 / total)));
	}

	public String getDesvioPadrao(double fid2, int total) {
		return  new DecimalFormat(Util.TRES_CASAS).format(Math.sqrt(fid2 / (total - 1.0)));
	}

	public String getVariancia(double fid2, int total) {
		return  new DecimalFormat(Util.TRES_CASAS).format(fid2 / (total - 1));
	}

	public String getCoefVariacao(String desvio, String media) {
		return new DecimalFormat(Util.TRES_CASAS).format(100 * getValorDouble(desvio) / getValorDouble(media));
	}

	private Double getValorDouble(String valor) {
		return Double.parseDouble(valor.replace(',', '.'));
	}

}
